/**
 * Project trac. Copyright May 30, 2012.
 */
package org.mediahouse.trac.model;

import java.util.Date;
import java.util.List;

/**
 * @author Tin
 * @version %I%, %G%
 * 
 */
public interface DeliverableService {

    /**
     * @param filters
     *            user-specified query filters.
     * @return the a list of deliverables returned by the query
     */
    public List<Deliverable> getDeliverables(final String... filters);

    /**
     * @param name
     *            the name of this deliverable.
     * @param status
     *            the status of this deliverable.
     * @param owner
     *            the reference ID of the owner of this deliverable.
     * @param qa
     *            the reference ID of the designated Quality Assurance of this
     *            deliverable.
     * @param due
     *            the due date of this deliverable.
     * @param textNotes
     *            the textual notes included with this deliverable.
     * @return the globally unique system reference ID of the newly created
     *         deliverable with the given parameters if and only if creation,
     *         and any internal system or datastore operations, was successful
     */
    public String newDeliverable(final String name,
            final int status,
            final Object owner,
            final Object qa,
            final Date due,
            final String textNotes);

}